var alg = function () {

    return {
        /**
         * 载入当前的游戏状态
         * 角色的购买次数 buyCount
         *      [
         *          11,
         *          23,
         *          20,
         *          5,
         *          1
         *      ]
         * 游戏的角色列表 roleList
         *      [
         *          10, 9, 4, 4,
         *          2, 2, 2, 2,
         *          -1, -1, -1, 0
         *      ]
         * 金额 money: {n:金额, u:计量单位}
         */
        load: function (state) {

        },

        /**
         * 合并，或位置发生改变
         * 新的游戏的角色列表 seatArray
         *      [
         *          10, 9, 4, 4,
         *          2, 2, 2, 2,
         *          0, 0, -1, 0
         *      ]
         * 是否合并成功, boolean mergeSuccess
         * 被合并的位置, int mergeSeat 0~11
         */
        merge: function (seatArray, mergeSuccess, mergedSeat) {

        },

        /**
         * 购买角色, roleLevel
         */
        buyRole: function (roleLevel) {

        },

        /**
         * 获取物品价格列表
         *      [
         *          1500,
         *          2300,
         *          1.05K,
         *          10.10K,
         *          ...
         *          -1,
         *          -1
         *      ]
         */
        getPriceList: function () {

        },

        /**
         * 获取当前状态
         * 角色的购买次数 int[0-50] buyCount
         *      [
         *          level1Count
         *          level2Count
         *          level3: 20
         *          level4: 5
         *          level5: 1
         *      ]
         * 游戏的角色列表 int[0-11] seatArray
         *      [
         *          10, 9, 4, 4,
         *          2, 2, 2, 2,
         *          0, 0, 0, 0
         *      ]
         * 金额 money: {n:金额, u:计量单位}
         * 钻石 Point: int
         * 最大的角色级别 int roleDiscoved
         */
        getState: function (state) {

        },

        //新的座位顺序被排列 (state)
        onLoadSeat: null,

        //挣钱速度 (currentMoneySpeed)
        onRefreshSpeed: null,

        //金额改变事件 (currentMoney)
        onRefreshMoney: null,

        //钻石数改变事件 (currentPoint)
        onRefreshPoint: null,

        //新的角色被发现 (level, pointInc, moneyInc)
        onRoleDiscovery: null
    }
}();
